/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package utilitario;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author rodrig0
 */
public class busca {
    public static int indexDoCampo(ArrayList lista, Object o, String metodo){
        if(lista.isEmpty()){
            return -1;
        }
        try {
            Class c = Class.forName(lista.get(0).getClass().getCanonicalName());
            try {
                Method me = c.getMethod(metodo);
                //procutando informação
                for (int i = 0; i < lista.size(); i++) {
                    try {
                        if(me.invoke(lista.get(i)).equals(o)){
                            return i;
                        }
                    } catch (IllegalAccessException ex) {
                        Logger.getLogger(busca.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (IllegalArgumentException ex) {
                        Logger.getLogger(busca.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (InvocationTargetException ex) {
                        Logger.getLogger(busca.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            } catch (NoSuchMethodException ex) {
                System.out.println("Metodo não encontrado");
            } catch (SecurityException ex) {
                Logger.getLogger(busca.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (ClassNotFoundException ex) {
            System.out.println("Classe não encontrada");
        }
        return -1;
    }
}
